Looks like the unit cost for each posting happens to be rounded towards different direction. A workaround is to manually adjust the last digit, for example:
2023-03-13 * "VIOV share split"
Assets:1-Investments:Trad:IRA:Vanguard:William:VIOV -0.381 VIOV {{68.35 USD, 2021-12-27}}
Assets:1-Investments:Trad:IRA:Vanguard:William:VIOV 0.762 VIOV {89.69816272965879265091863514 USD, 2021-12-27}
An easier way is to use a plugin for stock split, for example my
autobean.stock_split, which does the calculation directly on unit cost and thus suffer less from precision loss. Example:
plugin "autobean.stock_split"
2023-03-13 custom "autobean.stock_split" 2 VIOV ; 1 -> 2 split