Android将值与多个小数点

时间:2017-10-11 10:20:12

标签: android

我想检查应用程序版本以从服务器实现强制更新功能。我想检查1.1.5,1.1.6之类的值以查看哪个更大,我从服务器获取此值作为字符串并且我得到一个数字格式异常将该字符串解析为浮点值然后才能够比较。这是我的代码:

String server_app_version = versionObj.getString("android");
String  version = info.versionName;    
float server_version = Float.parseFloat(server_app_version);
float current_version = Float.parseFloat(version);

我如何比较server_version> current_version?

4 个答案:

答案 0 :(得分:1)

尝试这种方法。

var b bytes.Buffer
w := tabwriter.NewWriter(&b, 0, 0, 1, '.', 0)
// ...
fmt.Println(b.String())

Alex Gitelman answers

答案 1 :(得分:0)

将字符串拆分为'。'并从左到右投射和比较数字

答案 2 :(得分:0)

试试这个方法:

 var firstInput = "1.1.5";
var secondInput = "1.1.6";

var firstValues = firstInput.Split('.');
var secondValues = secondInput.Split('.');

// And then you compare one by une using a for loop
 // if Convert.ToInt32(firstValues[i]) >= Convert.ToInt32(secondsValues[i])
// Your logic is there

我希望它有所帮助。

答案 3 :(得分:0)

试试这个。它可能会帮助你。

Scanner s1 = new Scanner(str1);
Scanner s2 = new Scanner(str2);
s1.useDelimiter("\\.");
s2.useDelimiter("\\.");

while(s1.hasNextInt() && s2.hasNextInt()) {
    int v1 = s1.nextInt();
    int v2 = s2.nextInt();
    if(v1 < v2) {
        return -1;
    } else if(v1 > v2) {
        return 1;
    }
}

if(s1.hasNextInt()) return 1; //str1 has an additional lower-level version number
return 0;