If LN is the solution for this kind of issue, I am curious if LN indeed accept a fraction of satoshi while the original network rejects such kind of transaction, how can that transaction be presented on Bitcoin network since I believe LN transactions need to be reflected on the original network? Please kindly enlighten me since I am really confused about this kind of situation.
Good question.
So the transactions involving millisats
aren't broadcast to the main chain. They remain entirely within the Lightning network. Whenever a Lightning channel which has a balance involving millisats is closed, then the transaction which is broadcast to the main chain is rounded down to the nearest whole satoshi.
Think of it like this. You and I each put ten $1 bills in a jar. There are now twenty $1 bills in that jar. You sell me some goods for $5, and so we agree that when we open the jar again, you'll get fifteen of those bills, and I'll get five. All good so far. Then I sell you some goods for $2.50. So now the balance is $12.50 for you, and $7.50 for me. If we open the jar now, then we can't get the exact amounts we are owed, because there are only $1 bills in the jar and no quarters, dimes, etc., so we can't receive 50 cents each. But no matter, we aren't opening the jar yet, so it doesn't matter for now. We can agree that this is what we are each owed, without actually opening the jar. So we do another trade for $2.80, and now the split is $15.30 and $4.70. And another trade, and another, and another. All the time we agree to split the original $20 in different ways, some of which won't actually be possible because we don't have the coins needed to split up a dollar in to smaller parts. When we finally come to open the jar, let's say (for example) the split is $15.30 and $4.70, as above. You would get $15, and I would get $4, with $1 left over in the jar.
The same thing happens with Lightning channels. You open the channel using a whole number of sats, but then can trade in millisats. As long as your channel stays open (i.e. we don't open the jar), you can trade back and forth in millisats as long as you like. When you want to close the channel (i.e. open the jar), then the transaction broadcast to the main chain will only use sats, and so the balance of both parties will be rounded down to the nearest whole satoshi, with the extra satoshi (the $1 left over in the example above) added to the fee of the closing transaction.