我正在使用模式"#0.00##"来格式化数字,它可以像预期的那样为大多数输入工作。但有时源号较小(即:6.84378E-05),并被转换为"0,0001"。
是否有可能仅使用科学符号格式化这些数字(不符合标准模式)?保持所有“正常”数字不变?用单一模式。
我必须只使用一个DecimalFormal模式,没有任何额外的代码。
编辑:为了更好地解释为什么我需要单精度格式:我使用的是一个外部库,只能定义一个模式来配置输出。
只有正值和负值可以有不同的模式。你应该这样做:
public class DecimalScientificFormat extends DecimalFormat {
private static DecimalFormat df = new DecimalFormat("#0.00##");
private static DecimalFormat sf = new DecimalFormat("0.###E0");
@Override
public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) {
String decimalFormat = df.format(number);
return (0.0001 != number && df.format(0.0001).equals(decimalFormat)) ? sf.format(number, result, fieldPosition) : result.append(decimalFormat);
}
}
问题内容: 我想将整数数字格式化为十六进制字符串。 打印,但我希望它作为。我怎么做? 问题答案: 试试这个
问题内容: 我需要从随机整数(0-255)列表中创建一个十六进制数字字符串。每个十六进制数字应由两个字符表示:5-“ 05”,16-“ 10”等。 例: 我设法提出了: 但是,这看起来有点尴尬。有没有更简单的方法? 问题答案:
在中设置货币小数格式时遇到问题。我用一个类来设置,这个类扩展了,它将转换为,反之亦然。当我应该更改值时,如果删除所有数据并插入一个新的完整值,它是有效的,但如果我必须添加/更改值的一部分,如13.10中的13.00,更改将不应用,并重新提出旧值13.00。 如何解决? 谢谢
我是android和java编程的新手,所以请原谅我,如果这是一个简单的问题。我的问题是在小数点后添加%。我会得到双倍的值,不知道小数点后有多少位数,我需要在小数点后转换为两位数,最后需要在最后的位置添加%。问题是,我将只格式化一次双倍值。我已经尝试过像这样DecimalFormat ("#.##%"), 但是小数点向前移动了两位数。请帮助我摆脱这个问题。 使用十进制格式(“#.##%”, 实际:
我正在使用DecimalFormats将双打格式化为字符串。然后这个字符串被集成到我的表示层中。 问题:我想保留所有的小数。示例:“12345678.123456789” 格式:#.#- 我可以用##########对于大小数点,但是如果小数点更长呢? 我发现我的小测试程序很有用,想和大家分享。 你能帮我显示所有小数吗? 这导致: 编辑:一位用户提到了一个相关的问题:如何很好地将浮点数格式化为字符
问题内容: 我看到许多人使用这样的格式字符串: 而不是像这样简单地串联字符串: 格式字符串是否具有更好的性能,还是仅用于外观? 问题答案: 这只是为了外观。您可以一眼看出格式是什么。我们中的许多人都比微优化更喜欢可读性。 让我们看看IPython的意思: