所以我有3个文本字段(A,B,C),用户只能输入数字,因为键盘是数字键盘。
我有一张支票(用户在这里为我整理好了),如果用户试图在每个方框中输入超过100条,就会出现错误。
我需要一种方法来查看在文本字段中输入的数字,然后查看3的总数,然后相应地调整其他数据。
一个例子就是我输入以下内容:
示例1 A = 50 我希望B能够填补其余的50个
示例2 A = 40 B = 50 C = 10
然后我将A改为60.现在总数为120。 我想看看B,然后走20,所以我有以下。 A = 60 B = 30 C = 10
我已经看到用户有2个文本字段的情况,他想要总共100个,但我还没有看到要求3的线程。
谢谢
答案 0 :(得分:1)
假设您有三个字段。这是伪代码。将此委托功能附加到所有3个文本区域。
// Take 3 fields
FieldA, FieldB, FieldC
// Total target to reach
TotalTarget = 100
// The total we currently have
total = FieldA + FieldB + FieldC
// Work out how much we are under by.
// If positive, we are under. If negative, we are over.
underBy = TotalTarget - total
// Now two variables for the 'other two' fields.
if sender == FieldA:
other1 = FieldB, other2 = FieldC
if sender == FieldB:
other1 = FieldA, other2 = FieldC
if sender == FieldC:
other1 = FieldA, other2 = FieldB
// Split the difference and assign to other 2 fields so they are raised or lowered the same amount.
// If under, add, if over, subtract.
other1 = other1 + overBy / 2
other2 = other2 + overBy / 2
// This will add 1 or 0 to other2 (i.e. compensate for round-down)
other2 = other2 + overBy % 2;
如果使用整数除法,则会出现舍入问题。提示:如果它很奇怪,你可以添加一个到一个字段。
确保编写测试。我没有尝试过这个,但它应该有用。