我一直在想,找到了很多方法,当格式化成字符串时,可以从doubles中删除.0,但从来没有找到过如何为价格保留东西。
DecimalFormat format = new DecimalFormat();
format.setDecimalSeparatorAlwaysShown(false);
switch (position){
case 0:price = 11.90;break;
case 1:price = 1.2;break;
case 2:price = 1.002;break;
case 3:price = 1.0000;break;
}
System.out.println(format.format(price));
// 11.9
// or 1.2
// or 1.002
// or 1
但我需要的是这样的女人
// 11.90
// 1.2
// or 1.002
// or 1
这不是一个重复的,因为它会在我不想要的任何价格上加上00...我只是想去掉浮点,如果它后面有零,但如果有一个数字,就保留任何零。
例如。
1.0, 1.00 or 1.00000
should print out 1
1.90, 1.900 or 1.90000
should print out the same 1.90, 1900 or 1.900000
1.90
、1.900
或1.90000
应打印出相同的1.90
、1900
或1.900000
在基元上不能一直尾随零,因此0.9
与0.90
是完全相同的常量。
C#有decimal
,但Java没有用于此目的的基元数据类型。
Java确实有一个具有类似行为的类,BigDecimal
:
BigDecimal d1 = BigDecimal.valueOf(9, 1); // 9/10^1
BigDecimal d2 = BigDecimal.valueOf(90, 2); // 9/10^2
System.out.println(d1); //0.9
System.out.println(d2); //0.90
http://ideone.com/1gigir
1.0
、1.00
或1.00000
应打印出1
使用bigdecimal
后,检查它是否为整数就不那么困难了:
public static boolean isIntegerValue(BigDecimal bd) {
return bd.signum() == 0 || bd.scale() <= 0 || bd.stripTrailingZeros().scale() <= 0;
}
https://stackoverflow.com/A/12748321/360211
问题内容: 我正在从文件中读取数据,对其进行修改并将其写入另一个文件。新文件将被另一个程序读取,因此保持准确的格式至关重要 例如,输入文件中的数字之一是: 我的脚本对列应用了一些数学运算,应该返回 但是目前返回的是 我怎么会写一个浮动例如,作为一个文件? 问题答案: 将其格式化为6位小数: 演示: 该函数按照给定的格式说明将值转换为字符串。
我正在从一个文件中读取数据,修改它并将其写入另一个文件。新文件将由另一个程序读取,因此保留精确的格式至关重要 例如,我输入文件中的一个数字是: 我的脚本对列应用了一些数学运算,应该会返回 但目前返回的是 我如何将浮点值(例如)写入一个文件中?
在浮动范围组件上使用ngModel时出现运行时错误。:未指定名称属性的窗体控件没有值访问器 有什么解决方案可以在这两个组件之间绑定ngModel数据吗?
问题内容: 我知道如何做X数量的前导零,并且我知道如何做X数量的小数点。但是,我该怎么办? 我希望有4个前导零,十进制精度为2:0000.00。因此43.4将是0043.40 问题答案: 尝试以下(C,Perl,PHP)格式的字符串:
我只需要在Python中舍入浮点数的最后2个正数 EX: 0.000000302329303- 这是否可能以类似圆形的简单方式实现?
问题内容: 尝试使用格式说明符来打印浮点数,该浮点数将小于1,且前导零。我想出了一点技巧,但我认为有一种方法可以将格式说明符中的前导零丢弃。我在文档中找不到它。 问题 哈克 问题答案: 尽管我喜欢可爱的正则表达式技巧,但我认为简单的函数是实现此目的的最佳方法: 这样做的好处是易于理解,部分原因是因为它是简单的字符串匹配而不是正则表达式。