Java中灵活的数字格式
我有一个问题,如何编写代码,根据条件使用不同的十进制数字格式将双数转换为字符串。
例如
1)如果整数位数<; N:使用数字格式为####(N次).###(3个小数位)
2) 如果整数位数>=N:使用科学数字格式0.###E0 我只是想到手动计算整数位数(除以10)。然后使用if/else。
还有其他方法吗?
I have a question how to write code that will convert double numbers into string using different decimal number formats based on criteria.
For example
1) if number of integer digits < N: use number format as ####(N times).### (3 fraction digits)
2) if number of integer digits >=N: use scientific number format 0.###E0
I only come out with idea with manually counting integers digits(by dividing by 10).Then use if/else.
Is there any other way to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用类
NumberFormat
。当然,您必须使用条件来解释您的两种情况。
You could use the class
NumberFormat
. You have to use condition to account for your two cases, of course.虽然
DecimalFormat
JavDoc 有一个“科学记数法”部分,这似乎不符合您的要求。也许您可以摆脱 JavaDoc 中描述的“工程符号”?如果没有,那么最简单的方法是使用两种不同的格式,如下所示:
Although the
DecimalFormat
JavDoc have a section "Scientific Notation" this doesn't seem to match your requirements. Perhaps you can get away with the "engineering notation" described in the JavaDoc?If not, then the simplest way is to use two different formats like this: