Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #65 Format decimal number

From the real value x in [0,1], create its percentage string representation s with one digit after decimal point. E.g. 0.15625 -> "15.6%"

import java.text.DecimalFormat;
String s = new DecimalFormat("0.0%").format(x);
import static java.math.RoundingMode.HALF_UP;
import static java.text.NumberFormat.getPercentInstance;
import java.text.NumberFormat;
NumberFormat f = getPercentInstance();
f.setMaximumFractionDigits(1);
f.setRoundingMode(HALF_UP);
String s = f.format(x);
String s = "%.1f%%".formatted(x * 100);
#include <stdio.h>
char s[7];
sprintf(s, "%.2lf%%", x * 100);
#include <format>
auto s = std::format("{.1f}%", x * 100);
string s = $"{x:p1}";
import std.string : format;
string percent = format("%.1f%%", x * 100.0);
var s = "${(x * 100).toStringAsFixed(1)}%";
s = "#{Float.round(x * 100, 1)}%"
write (*,'(F5.1,"%")') x*100.
import "fmt"
s := fmt.Sprintf("%.1f%%", 100.0*x)
s = Numeric.showFFloat (Just 1) (100*x) "%"
const s = Math.round (x * 1000) / 10 + '%'
const percentFormatter = new Intl.NumberFormat('en-US', {
  style: 'percent',
  maximumSignificantDigits: 3
});

const s = percentFormatter.format(x);
local s = (x-x%10^-3)*100 .."%"
s = string.format("%.1f%%", x*100)
$s = number_format($x * 100.0, 1) . '%';
SysUtils
s :=format('%.1f%%', [100.0*x]);  
my $s = sprintf '%.1f%%', $x * 100;
s = f"{x:.01%}"
s = '{:.1%}'.format(x)
s = "%.1f%%" % (100 * x)
let s = format!("{:.1}%", 100.0 * x);

New implementation...