我需要使用<fmt:formatNumber/>jstl标签格式化数字.输出应限制在小数点后3位,但不允许舍入,因此使用该属性maxFractionDigits="3"是不合适的,因为它会使数字四舍五入.
你有什么建议吗?
我在我的应用程序中使用双打做一些数学运算.这在模拟器上很有效,模拟器使用句点来生成小数.当我在我的iPhone上运行时,我有一个逗号.当我使用逗号时它不会做任何事情.
如何修改所以要么认为逗号的东西作为一个周期或更改键盘(我用的是十进制垫),所以我得到的所有语言输入时期?
问题是,我有一个从这个查询得到的数组:
$secimKrm = ("SELECT * FROM kurumlar
INNER JOIN veri_2012_09
ON kurumlar.krmKod = veri_2012_09.krmKod
WHERE kurumlar.krmKod = '$krmKod'");
$sonucKrm = $mysqliKrm->query($secimKrm);
$row = $sonucKrm->fetch_assoc();
Run Code Online (Sandbox Code Playgroud)
"kurumlar"由字符串组成,"veri_2012_09"由大整数组成."veri_2012_09"中有近35列,我不想逐个格式化数字.
当我尝试格式化数组"$ row"中的数字时,我使用:
foreach ($row as $key => $val) {
$row[$key] = number_format($val, 0, ',', '.');
}
Run Code Online (Sandbox Code Playgroud)
它工作,但它会导致错误,(警告:number_format()期望参数1为double,字符串在...中给出)因为我的数组中有字符串.如何在格式化数字之前排除字符串?
我使用ostringstream输出一个数字到2位小数,如下所示
std::ostringstream ostr;
ostr << std::fixed << std::setprecision(2);
ostr << cylinderLength;
Run Code Online (Sandbox Code Playgroud)
因此,如果cylinderLength = 0.594,则上述输出为预期的0.59.
是否有一个操作符或函数会在最后所需的小数位上向上或向下舍入?
在这种情况下,上面的例子将打印出0.60.
可能重复:
格式化文件大小为MB,GB等
使用NumberFormat,我想将我的数字格式化为科学乘数.换句话说,我想要以下格式:
显然,其他数字应使用k,G和其他倍数表示.
我怎样才能做到这一点 ?或者我需要一些Java库?
我正在使用此代码:
DecimalFormat df = new DecimalFormat();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
float a=(float) 15000.345;
Sytem.out.println(df.format(a));
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:15,000.35
我不希望逗号进入此输出.我的输出应该是:15000.35.
在Java中获取此输出的最佳方法是什么?
是否有可能在.NET中具有最紧凑的数字格式,如 "G"通用数字格式,具有额外的千位分隔符.
我不能使用以下内容
String.Format("{0:#,###.###}",32445.324777M)
Run Code Online (Sandbox Code Playgroud)
因为我得到了"32,445.325",而我想要的结果应该是"32.445,325777".也应该在小数部分使用任意数量的有效数字.
PS:我只需要十进制数.
我在(Windows 10)sublime text 3文件中有以下简单代码NumberFormat.java,用于格式化双倍美国货币:
import java.util.Scanner;
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormat {
public static void main(String[] args) {
double num = 1000.322;
NumberFormat defaultFormat = NumberFormat.getCurrencyInstance();
System.out.println("US: " + defaultFormat.format(num));
return;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我构建时,跟随错误仅出现在NumberFormat中.
NumberFormat.java:2: error: NumberFormat is already defined in this compilation unit
import java.text.NumberFormat;
^
NumberFormat.java:10: error: cannot find symbol
NumberFormat defaultFormat = NumberFormat.getCurrencyInstance();
^
symbol: method getCurrencyInstance()
location: class NumberFormat
NumberFormat.java:11: error: cannot find symbol
System.out.println("US: " + defaultFormat.format(num));
^
symbol: method format(double) …Run Code Online (Sandbox Code Playgroud) 我想将此字符串“ 123456”转换为十六进制 String.format("%016x", "123456")
但我有一个错误
Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4302)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2793)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2747)
at java.util.Formatter.format(Formatter.java:2520)
at java.util.Formatter.format(Formatter.java:2455)
at java.lang.String.format(String.java:2940)
at Asdfsaf.main(Asdfsaf.java:22)
Run Code Online (Sandbox Code Playgroud) 如何使用php 将这个数字247936变成这个$ 2,479.36?
我尝试了几个选项,例如:
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', '247936'); // OUTPUT: USD 247,936.00
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
echo number_format(247936, 2); // echos '247,936.00'
Run Code Online (Sandbox Code Playgroud)
我甚至试过这个,但它没有用
echo number_format(247936, 2,'.', ','); // echos 247,936.00
Run Code Online (Sandbox Code Playgroud) java ×5
numbers ×3
formatting ×2
php ×2
.net ×1
arrays ×1
c# ×1
c++ ×1
currency ×1
decimal ×1
hex ×1
ios ×1
jstl ×1
money-format ×1
sublimetext3 ×1