适配问题:两数相除得小数点后两位

文章讨论了在编程中遇到的数字格式化问题,特别是在某些设备上,小数点可能被错误地转换为逗号。通过使用DecimalFormat和DecimalFormatSymbols进行定制,尝试解决这个问题。然而,发现在某些特定的语言环境下(如华为和三星手机),依然存在解析错误。最终解决方案是使用`String.format(Locale.ENGLISH, "%.1f", number)`确保在格式化时使用英语环境,避免因本地化差异导致的解析异常。" 128370727,16942543,Python+UniApp微信小程序:新生报到系统设计与实现,"['Python', '小程序', '课程设计', 'uniapp', 'Django']
摘要由CSDN通过智能技术生成

String.format("%.1f", number); fabric后台报错有“55,4”之类的问题

即:将.转换为了,

更改第一版:

val twoDForm = DecimalFormat("#.##")
        val dfs = DecimalFormatSymbols()
        dfs.decimalSeparator = '.'
        twoDForm.decimalFormatSymbols = dfs

发现报错:java.lang.NumberFormatException: Invalid float: "۰"

看来要认真解决下了:


@Testpublic void testStringLocale() throws Exception {

Locale[] locales = new Locale[]{

Locale.CANADA,

Locale.CANADA_FRENCH,

Locale.CHINESE,

Locale.ENGLISH,

Locale.FRANCE,

Locale.GERMAN,

Locale.JAPANESE,

Locale.KOREA,

Locale.KOREAN,

Locale.PRC,

Locale.ROOT, };

String weightString = null;

for (Locale locale : locales) {

try {

weightString = formatFloatWithOneDot(locale, 55.4f);

float weight = Float.parseFloat(weightString);

} catch (NumberFormatException e) {

System.out.println(locale + ">>>>>" + weightString + ">>>>>>>>>> error");

continue; }

System.out.println(locale + ">>>>>" + weightString); }}


发现在不同的语言背景下,多数情况是可以成功解析的 ,但是在少数环境 华为,三星等手机会解析错误

所以解析之前指定国家就好了

String.format(Locale.ENGLISH, "%.1f", number);





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值